package com.woniuxy.staticproxy;

/**
 * @Author: 马宇航
 * @Todo: 静态代理
 * @DateTime: 22/03/28/0028 上午 10:50
 * @Component: 成都蜗牛学苑
 **/
public class StaticProxyImpl implements UtraMan{
    /**
     * 对原本的方法进行了增强，但是，这种增强有侵入性！
     * ChangeLog : 1. 创建 (22/03/28/0028 上午 10:55 [马宇航]);
     *
     * @return void
    */
    @Override
    public void hit() {
        //前置入侵方法
        preHandler();
        //目标对象的方法 被代理对象的方法！
        UtraMan utraMan = new DiGer();
        utraMan.hit();
        //后置入侵方法
        hesitationWillDefeat();
    }
    public void preHandler(){
        System.out.println("我是哥斯拉！我入侵了地球！");
    }
    public void hesitationWillDefeat(){
        System.out.println("哥斯拉被打败了！");
    }

    public static void main(String[] args) {
        //我们运行的其实是静态代理的对象
        UtraMan utraMan = new StaticProxyImpl();
//        UtraMan utraMan = new UtraManImpl();
        utraMan.hit();
    }
}
